#pragma once

#include "../umlmodel_global.h"

#include "ControlNode.h"

namespace uml {

/// <summary>
/// MergeNode
/// A merge node is a control node that brings together multiple alternate flows. It
/// is not used to synchronize concurrent flows but to accept one among several
/// alternate flows.
/// </summary>
class UMLMODEL_EXPORT MergeNode : public ControlNode {

public: // Constructors and destructors
    explicit MergeNode(const QString& umlType="uml::MergeNode");

public: // JsonSerializable override
    void fromJson(const QJsonObject& json, QStringList& errorList) override;
    void toJson(QJsonObject& json) override;

};

} // namespace uml
